Skip to content

chore: merge actions-vm build workflows; add setup-oci-cli action - #670

Merged
koksay merged 2 commits into
cncf:mainfrom
jeefy:chore/vm-build-workflow-consolidation
Sep 11, 2026
Merged

koksay merged 2 commits into
cncf:mainfrom
jeefy:chore/vm-build-workflow-consolidation

Conversation

@jeefy

@jeefy jeefy commented Sep 9, 2026

Copy link
Copy Markdown
Member

Part of an ongoing effort to clean up, consolidate, and prune this repo (follows #664, #668, #669).

build-actions-vm.yml replaces periodic-build-new-actions-vm.yml + change-file-build-new-actions-vm.yml (1383 lines → 693). They were the same pipeline; the only deltas were:

periodic change-file merged
trigger cron push on ci/gha-runner-vm*/** both + workflow_dispatch (force_rebuild)
skip if image for latest release exists yes no SKIP_IF_IMAGE_EXISTS = schedule, or dispatch without force_rebuild
GITHUB_PERIODIC true unset ${SKIP_IF_IMAGE_EXISTS}
apt (x86 job) qemu-system-x86 xorriso + qemu-system-arm qemu-efi-aarch64 union
PATH ~/.local/bin ~/bin both

.github/actions/setup-oci-cli — composite replacing 8× setup-python + pip install oci-cli and 3× inline ~/.oci/config heredocs per file. Writes the config only when key-content is passed, exports OCI_CONFIG_FILE/OCI_CLI_CONFIG_FILE so the CLI, Packer, and gha-runner-vm's Go code (which reads OCI_CONFIG_FILE) all agree. Also adopted in cleanup-custom-images.yaml.

Not touched: publish-cloudrunner-images.yml (writes a container-path config for docker run -v) and ci-test.yaml (builds a k8s Secret) — different shapes, follow-up.

Can't be exercised on a fork (needs OCI secrets + self-hosted runners); YAML validated locally. Recommend a workflow_dispatch run with force_rebuild=false after merge to confirm the skip path, then one nightly.

periodic-build-new-actions-vm.yml and change-file-build-new-actions-vm.yml
were the same 700-line pipeline differing only in trigger, the
image-exists gate, GITHUB_PERIODIC, and an apt package list. Merge them
into build-actions-vm.yml with schedule + push + workflow_dispatch
triggers; the image-exists gate is applied only on schedule (or on
dispatch unless force_rebuild is set).

Add .github/actions/setup-oci-cli to replace the repeated setup-python +
pip install oci-cli steps and the inline ~/.oci/config heredocs. It
exports OCI_CONFIG_FILE and OCI_CLI_CONFIG_FILE so the OCI CLI, Packer,
and the Go tools all find the same config.

Signed-off-by: Jeffrey Sica <me@jeefy.dev>
@github-actions github-actions Bot added needs-triage Indicates an issue or PR that has not been triaged yet (has a 'triage/foo' label applied) needs-kind Indicates an issue or PR that is missing an issue type or kind (a kind/foo label) needs-group Indicates an issue or PR that has not been assigned a group (toc or tag/foo label applied) needs-priority Indicates an issue or PR missing a priority label needs-area Indicates an issue or PR missing an area label needs-status Indicates an issue or PR missing a status label labels Sep 9, 2026
Comment thread .github/workflows/build-actions-vm.yml Resolved
Drop qemu-system-arm/qemu-efi-aarch64 from the x86 job; the arm image is
built by the OCI builder in a separate job and does not use QEMU.

Make the ~/.oci/config dependency explicit: name the setup-oci-cli step,
reference its config-file output from the arm build and Enable A10 shapes
steps, and assert the file exists before use. setup-oci-cli now fails if
key-content is set but any other config field is empty.

Signed-off-by: Jeffrey Sica <me@jeefy.dev>
@jeefy
jeefy requested a review from koksay September 10, 2026 22:37
@koksay
koksay merged commit 946c499 into cncf:main Sep 11, 2026
4 checks passed
@koksay

koksay commented Sep 11, 2026

Copy link
Copy Markdown
Member

Triggered action after the merge: https://github.com/cncf/automation/actions/runs/34570462842

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-area Indicates an issue or PR missing an area label needs-group Indicates an issue or PR that has not been assigned a group (toc or tag/foo label applied) needs-kind Indicates an issue or PR that is missing an issue type or kind (a kind/foo label) needs-priority Indicates an issue or PR missing a priority label needs-status Indicates an issue or PR missing a status label needs-triage Indicates an issue or PR that has not been triaged yet (has a 'triage/foo' label applied)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants